package com.cskaoyan.javase.array._3exception._4operation._2reverse;


import java.util.Arrays;

/**
 * 数组的逆序（reverse），即颠倒数组中元素的顺序，在源数组上直接改变元素顺序：
 * 即下标为"0"和"length-1"位置的元素互换，下标为"1"和"length-2"位置的元素互换....
 * 即，把下标为"i"和"length-1-i"元素互换即可！
 * 下标元素交换
 *      0 <--> arr.length-1
 *      1 <--> arr.length-1-1
 *      ...
 *      i <--> arr.length-1-i
 *
 * @since 16:28
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        System.out.println("交换之前:" + Arrays.toString(arr));
        reverse(arr);
        System.out.println("交换之后:" + Arrays.toString(arr));

    }

    // 数组的逆序
    public static void reverse(int[] arr) {
        // 1.遍历数组
        for (int i = 0; i < arr.length / 2; i++) {
            // 2.在遍历中交换元素的取值
            // 交换元素,需要第三者,需要temp将被覆盖的元素取值事先保存
            // 交换这两个元素i <--> arr.length-1-i
            int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }
    }
}
